分类
块设备:磁盘
字符设备:终端、打印机等
- 低速字符设备:鼠标、键盘(低于 1KBps)
- 中速字符设备:激光打印机(1KBps~100KBps)
- 高速字符设备:光盘(100KBps~1GBps)
I/O 接口(设备控制器)
组成:
设备控制器与 CPU 的接口:数据(连接数据、状态 / 控制寄存器)、地址、控制线。
设备控制器与设备的接口:可以连接多个设备
I/O 逻辑:对设备进行控制
功能:接收、识别 CPU 命令。数据交换。标识、报告设备状态。地址识别、数据缓冲。差错控制。
实现:地址译码,设备选择,实现主机与外设通信,实现数据缓冲,信号转换,传送控制命令和状态
I/O 接口按数据传送方式分为并行 / 串行。按控制方式分为 DMA,程序查询接口,中断接口。按灵活性分为可编程 / 不可编程
I/O 端口
接口电路中可被 CPU 直接访问的寄存器,包括数据、状态、控制寄存器。
CPU 访问端口编址方式:
I/O 软件层次结构#
用户层 I/O 软件:与用户交互的接口。
设备独立性:增加设备分配灵活性,可以实现 I/O 重定向,向上层提供统一接口
设备驱动程序:与硬件相关,具体实现系统对设备发出的操作指令。
中断处理程序:保存被中断进程的 CPU 环境。
应用程序 I/O 接口
- 字符设备接口:中断方式,不可寻址、速率较低。需要独占访问
- 块设备接口:DMA 方式,如磁盘
- 网络接口:Socket 接口
- 阻塞 / 非阻塞 I/O:非阻塞 I/O 返回一个值,进程根据值判断 I/O 是否完成。